#include <QApplication>
#include <QPushButton>
#include <QWidget>
#include <QFont>


int main( int argc, char **argv )
{
    // Qt GUI 应用程序运行的基础
    QApplication a( argc, argv );
    // 创建一个 QWidget 对象 w，这个对象将作为我们的主窗口
    QWidget w;
    // 创建按钮显示文字并将w作为其父类
    QPushButton hello("Quit!", &w);
    // 调整按钮的大小
    hello.resize(300, 40);
    // 设置字体
    hello.setFont(QFont("Times", 18, QFont::Bold));

    // 建立信号与槽
    // QApplication::instance() 获取应用程序的实例对象，&QApplication::quit 是退出应用程序的槽函数地址
    QObject::connect(&hello, &QPushButton::clicked, QApplication::instance(), &QApplication::quit);

    // 让窗口及其子节点可见
    w.show();
    // 启动 Qt 应用程序的事件循环。exec() 函数会一直运行，直到应用程序退出
    // 在exec()中，Qt接受并处理用户和系统的事件并且把它们传递给适当的窗口部件
    return a.exec();
}
